
<!-- 文章列表项 -->
<template>
  <!--
  Cell 单元格的 to 属性 和
  VueRouter 中的 RouterLink 组件的 to 属性用法一样
 -->
  <van-cell
    class="article-item"
    :to="{
      //根据路由名称进行跳转
      name: 'article',
      // 传递路由的动态参数
      params: {
      // 属性名：路由路径上设置的动态参数名
        articleId: article.art_id
      }
    }"
  >
    <div
      slot="title"
      class="title van-multi-ellipsis--l2"
    >
      <!-- 标题 -->
      {{ article.title }}
    </div>
    <!-- 文章图片 -->
    <div slot="label">
      <!--
        判断有三张图片的 显示在下面
       -->
      <div
        v-if="article.cover.type === 3"
        class="cover-wrap"
      >
        <div
          class="cover-item"
          v-for="(img, index) in article.cover.images"
          :key="index"
        >
          <van-image
            class="cover-item-img"
            :src="img"
            fit="cover"
          />
        </div>
      </div>
      <!-- 下面的内容 -->
      <div class="label-info-wrap">
        <!-- 文章作者名字 -->
        <span>{{ article.aut_name }}</span>
        <!-- 评论数量 -->
        <span>{{ article.comm_count }}评论</span>
        <!-- 发布时间 -->
        <span>{{ article.pubdate | relativeTime }}</span>
      </div>
    </div>
    <!--
      判断有一个图片的  显示在右边的插槽
      没有图片     不显示
     -->
    <van-image
      v-if="article.cover.type === 1"
      slot="default"
      class="right-cover"
      fit="cover"
      :src="article.cover.images[0]"
    />
  </van-cell>
</template>

<script>
export default {
  // 组件名称
  name: 'ArticleItem',
  // 局部注册的组件
  components: {},
  // 组件参数 接收来自父组件的数据
  props: {
    article: {
      // 当前要展示的文章信息
      type: Object,
      required: true
    }
  },
  // 组件状态值
  data () {
    return {

    }
  },
  // 计算属性
  computed: {},
  // 侦听器
  watch: {},
  // 生命周期钩子   注：没用到的钩子请自行删除
  /**
  * 组件实例创建完成,属性已绑定,但DOM还未生成,el属性还不存在
  */
  created () { },
  /**
  * el 被新创建的 vm.el 替换，并挂载到实例上去之后调用该钩子。
  * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.el 也在文档内。
  */
  mounted () { },
  // 组件方法
  methods: {}
}

</script>

<style scoped lang="less">
.article-item {
  .title {
    font-size: 32px;
    color: #3a3a3a;
  }

  .van-cell_value {
    flex: unset;
    width: 232px;
    height: 146px;
    padding-left: 25px;
  }

  .right-cover {
    width: 232px;
    height: 146px;
  }

  .label-info-wrap span {
    font-size: 22px;
    color: #b4b4b4;
    margin-right: 25px;
  }

  .cover-wrap {
    display: flex;
    padding: 30px 0;
    .cover-item {
      flex: 1;
      height: 146px;
      &:not(:last-child) {
        padding-right: 4px;
      }
      .cover-item-img {
        width: 100%;
        height: 146px;
      }
    }
  }
}
</style>
